package com.holiday.springboot2.listener;

import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;

/**
 * 请求监听器，客户端发起请求的时候就会调用这个类中的方法
 *  1、实现 ServletRequestListener
 *      重写方法
 *          1、requestDestroyed：请求完成的时候调用
 *          2、requestInitialized：请求开始的时候调用
 *
 *
 *
 *
 * 监听器的使用
 *  1、监听器有三个
 *      1、ServletRequestListener：请求监听器，作用：客户端发起请求的时候执行，这上是长期存在的。
 *      2、HttpSessionListener：会话监听器，作用：产生会话的时候执行，一般都不用这个，这上是长期存在的。
 *      3、ServletContextListener：应用启动监听器，作用：容器在启动的时候执行。只执行一次
 *  2、自定义类，实现需要对应的监听器，并实现对应的方法
 *      1、自定义类，实现监听器，添加注解：@WebListener
 *      2、ServletRequestListener，重写方法：1、requestDestroyed；2、requestInitialized
 *      3、HttpSessionListener，重写方法：1、sessionCreated；2、sessionDestroyed
 *      4、ServletContextListener，重写方法：1、contextInitialized，2、contextDestroyed
 */

@WebListener
public class CustomRequestListener implements ServletRequestListener {
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        ServletRequestListener.super.requestDestroyed(sre);
        System.out.println("监听器requestDestroyed");
    }

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        ServletRequestListener.super.requestInitialized(sre);
        System.out.println("监听器 requestInitialized");
    }
}
